export default function updateNodeElement(newElement, virtualDOM, oldVirtualDOM = {}) {
    const newProps = virtualDOM.props || {}
    const oldProps = oldVirtualDOM.props || {}
    Object.keys(newProps).forEach(propName => {
        let newPropsValue = newProps[propName]
        let oldPropsValue = oldProps[propName]
        if (newPropsValue !== oldPropsValue) {
            if (propName.slice(0, 2) === "on") {
                // 事件名称
                let eventName = propName.toLowerCase().slice(2);
                // 元素添加事件
                newElement.addEventListener(eventName, newPropsValue)
                // 删除原有的时间处理函数
                if (oldPropsValue) {
                    console.log(11)
                    newElement.removeEventListener(eventName, oldPropsValue)
                }
            } else if (propName === "value" || propName === "checked") {
                newElement[propName] = newPropsValue
            } else if (propName !== "children") {
                if (propName === "className") {
                    newElement.setAttribute("class", newPropsValue)
                } else {
                    newElement.setAttribute(propName, newPropsValue)
                }
            }
        }
    })
    // 判断属性被删除的情况
    Object.keys(oldProps).forEach((propName) => {
        let newPropsValue = newProps[propName]
        let oldPropsValue = oldProps[propName]
        if (!newPropsValue) {
            if (propName.slice(0, 2) === "on") {
                let eventName = propName.toLowerCase().slice(2);
                newElement.removeEventListener(eventName, oldPropsValue)
            } else if (propName !== "children") {
                newElement.removeAttribute(propName)
            }
        }


    })
}